package com.zlc.common.common.entity;

import com.github.pagehelper.Page;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class PageVo<T> {

    private List<T> list;

    private int pageNumber;

    private int pageSize;

    private long total;

    public static <T>PageVo<T> page(){
        PageVo<T> pageVo = new PageVo<>();
        pageVo.setTotal(0);
        pageVo.setList(new ArrayList<>());
        return pageVo;
    }

    public static <T>PageVo<T> page(List<T> list,long total){
        PageVo<T> pageVo = new PageVo<>();
        pageVo.setTotal(total);
        pageVo.setList(list);
        return pageVo;
    }

    public static <T>PageVo<T> page(List<T> list){
        PageVo<T> pageVo = new PageVo<>();
        if(list instanceof Page){
            Page<T> page = (Page)list;
            pageVo.setTotal(page.getTotal());
            pageVo.setPageNumber(page.getPageNum());
            pageVo.setPageSize(page.getPageSize());
            pageVo.setList(page.getResult());
            return pageVo;
        }
        pageVo.setTotal(list.size());
        pageVo.setList(list);
        return pageVo;
    }

}
